The complex exponential function, that is, ƒ(z)=ez where z is a complex number, is an important calculation performed in many problem domains, such as signal processing and numerical simulation. Repeated calculation of the exponential function tends to be a computationally-expensive operation. For example, each calculation of the exponential function may include calls to the cos( ) and sin( ) functions. To improve performance, programmers may pre-compute the exponential function over an iteration space and store the resulting values in memory. However, for large data sets, that optimization may require excessive storage space in memory or use excessive memory bandwidth.
Typical compilers may generate code to compute the exponential function using an intrinsic function of the compiler. Compiler intrinsic functions are typically pre-programmed segments of assembly code that may or may not target particular computer architectures. Thus, intrinsic functions typically can only be optimized by the compiler at the assembly code level.